iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0
Modern Web

征服C#系列 第 9

Day09 物件導向基礎-Value 與 Reference Type

  • 分享至 

  • xImage
  •  

抱歉因為網路問題所以拖更一下,先公布一下答案
https://ithelp.ithome.com.tw/upload/images/20190923/20119848ZEy3r7NfGT.png
https://ithelp.ithome.com.tw/upload/images/20190923/201198486OwsSZMsgc.png

那開始今天的主題吧!要講Value Type、Reference Type

簡介:

1.C# 變數裡的資料都是存放在記憶體(Memory)內的
2.Student Class 則是一種 Reference Type。宣告 Reference Type 的變數時,也會先在記憶體中尋找一個空間,標記為變數名稱,然後裡面則「存放物件的記憶體位置」。
3.物件必須要透過「new Class名稱()」的方式建立,沒有指向任何物件的 reference(參考) 變數,則存放著「null」。
4.物件都是存放在一個稱為「Heap(堆疊)」的特殊記憶體區塊

Value Type

int(整數)就是一種 Value Type,先在記憶體中尋找一個空間,標記為變數名稱然後將指定的數值存入
https://ithelp.ithome.com.tw/upload/images/20190923/20119848JvhjHV7Byb.png
int a = 10
https://ithelp.ithome.com.tw/upload/images/20190923/20119848lHfE9OQgb2.png
一開始先宣告a = 10之後,再宣告b讓a放進去b裡面

Reference Type

https://ithelp.ithome.com.tw/upload/images/20190923/20119848ejXpQAkgBb.png
在記憶體裡面有一個叫做Heap的地方,在那裏可以新增物件每個物件都有一個地址(記憶體位置),使用Reference可以得到記憶體位置並且找到物件
https://ithelp.ithome.com.tw/upload/images/20190923/20119848Uco5aW9qb7.png
S1記憶體複製給S2,並且修改物件這時後透過S1呼叫變成S2的值

結語:如果各位大大發現有哪裡錯誤請告訴我,我會立即將他修正的


上一篇
Day08 物件導向基礎-class介紹(續)
下一篇
Day10 物件導向基礎-Constructor建構子
系列文
征服C#21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言